package ccu.common.algorithms.test;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/**
 * @Author huang_2
 * @Date 2020/2/27 2:53 下午
 * @Description
 * 如果统计的个数相同，则按照ASCII码由小到大排序输出 。如果有其他字符，则对这些字符不用进行统计。
 *
 * 实现以下接口：
 * 输入一个字符串，对字符中的各个英文字符，数字，空格进行统计（可反复调用）
 * 按照统计个数由多到少输出统计结果，如果统计的个数相同，则按照ASII码由小到大排序输出
 * 清空目前的统计结果，重新统计
 * 调用者会保证：
 * 输入的字符串以‘\0’结尾。
 *
 * 输入描述:
 * 输入一串字符。
 * 输出描述:
 * 对字符中的
 * 各个英文字符（大小写分开统计），数字，空格进行统计，
 * 并按照统计个数由多到少输出,如果统计的个数相同，则按照ASII码由小到大排序输出 。
 * 如果有其他字符，则对这些字符不用进行统计。
 * 输入
 * aadddccddc
 * 输出
 * dca
 */
public class 字符统计 {
    public static void main(String[] args) throws Exception {
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        String line = null;
        while((line=br.readLine())!=null){
            System.out.println(getRes(line));
        }
    }

    private static String getRes(String str) {
        char[] chs=str.toCharArray();
        int[] num = new int[200];     //必须大于128
        for (char c : chs) {
            int i = c;
            num[i]++;
        }

        int max=0;
        for(int i=0;i<num.length;i++){
            if(max<num[i]){
                max=num[i];
            }
        }

        StringBuffer sb=new StringBuffer();

        while(max!=0){
            for(int i=0;i<num.length;i++){
                if(max==num[i]){
                    sb.append((char)i);
                }
            }
            max--;
        }
        return sb.toString();
    }
}
